package net.ericaro.neojavagen.classes;

/**
 * <b>ReturnMethodDeclarator</b> ::= <{@link net .ericaro .neojavagen .types .Type Type}> <{@link net .ericaro .neojavagen .classes .MethodDeclarator
 * MethodDeclarator}> <{@link net .ericaro .neojavagen .classes .Dims Dims}>?
 * 
 * @author eric@ericaro.net
 */
public class ReturnMethodDeclarator extends net.ericaro.neojavagen.JavaPartComposition implements net.ericaro.neojavagen.classes.TypedMethodDeclarator {
	private net.ericaro.neojavagen.classes.Dims dims;

	private net.ericaro.neojavagen.classes.MethodDeclarator methodDeclarator;

	private net.ericaro.neojavagen.types.Type type;

	public ReturnMethodDeclarator(net.ericaro.neojavagen.types.Type type, net.ericaro.neojavagen.classes.MethodDeclarator methodDeclarator) {
		this.type = type;
		this.methodDeclarator = methodDeclarator;
		this.dims = null;
	}

	public ReturnMethodDeclarator(net.ericaro.neojavagen.types.Type type, net.ericaro.neojavagen.classes.MethodDeclarator methodDeclarator, net.ericaro.neojavagen.classes.Dims dims) {
		super();
		this.type = type;
		this.methodDeclarator = methodDeclarator;
		this.dims = dims;
	}

	public net.ericaro.neojavagen.classes.Dims getDims() {
		return dims;
	}

	public net.ericaro.neojavagen.classes.MethodDeclarator getMethodDeclarator() {
		return methodDeclarator;
	}

	public net.ericaro.neojavagen.types.Type getType() {
		return type;
	}

	public void setDims(net.ericaro.neojavagen.classes.Dims dims) {
		this.dims = dims;
	}

	public void setMethodDeclarator(net.ericaro.neojavagen.classes.MethodDeclarator methodDeclarator) {
		this.methodDeclarator = methodDeclarator;
	}

	public void setType(net.ericaro.neojavagen.types.Type type) {
		this.type = type;
	}

	@Override
	public java.lang.String toString() {
		return print(type, methodDeclarator, dims);
	}
}
